package com.gitee.sop.sopauth.auth;

import com.alibaba.fastjson.JSONObject;
import com.gitee.sop.sopauth.controller.param.CodeParam;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * 获取accessToken参数对象
 *
 * @author admin
 */
@Data
public class FetchTokenParam extends CodeParam {
    /**
     * 授权类型。<br>
     * 如果使用app_auth_code换取token，则为authorization_code，
     * 如果使用refresh_token换取新的token，则为refresh_token
     */
    private String grant_type = "authorization_code";

    /**
     * 授权码.与refresh_token二选一，用户对应用授权后得到，即第一步中开发者获取到的app_auth_code值
     */
    private String code;

    /**
     * 刷新令牌.与code二选一，可为空，刷新令牌时使用
     */
    private String refresh_token;

    private String appName;
    private String password;

    /**
     * 登录类型；手机/邮箱+验证码 或者 账号+密码 （phone/email/pwd）
     * 当为phone/email时，表示下发验证码登录
     * 当为pwd时，表示账号密码登录
     */
    @NotBlank(message = "loginType不能为空")
    private String loginType;

    /**
     * 扩展信息
     */
    private JSONObject extData;
}
